package com.hlw.hr_man.service;

import java.util.List;

import com.hlw.hr_man.Model.AskForLeave;

public interface AskForLeaveService {
	/**
	 * 
	 * @Description: 根据员工id分页查找对应的请假记录
	 * @param eid  员工id
	 * @param start  开始页码
	 * @param pageSize  每页显示记录条数
	 * @return List<AskForLeave>  请假记录的集合
	 */
	public List<AskForLeave> getEmployeeAflByEid(int eid, int start, int pageSize);
	/**
	 * 
	 * @Description: 根据员工id获得请假记录总数目
	 * @param eid  员工id
	 * @return int  记录总数
	 */
	public int getEmployeeAfl(int eid);
	/**
	 * 
	 * @Description: 根据搜索内容查询员工的请假信息
	 * @param searchType  搜索类型
	 * @param searchContent  搜索内容
	 * @param start  开始页码
	 * @param pageSize  每页显示记录条数
	 * @return List<AskForLeave>  搜索到的员工的请假记录的集合
	 */
	public List<AskForLeave> getEmployeeAflBySearch(String searchType, String searchContent, int start, int pageSize);
	/**
	 * 
	 * @Description: 获得搜索到的员工的请假总数
	 * @param searchType  搜索类型
	 * @param searchContent  搜索内容
	 * @return int  搜索到的员工请假记录总数
	 */
	public int getEmployeeAflCount(String searchType, String searchContent);
	/**
	 * 
	 * @Description: 添加员工的请假记录
	 * @param afl   请假记录
	 * @return boolean  添加是否成功
	 */
	public boolean addAfl(AskForLeave afl);
	/**
	 * 
	 * @Description: 员工销假  更改请假记录中的状态为已销假
	 * @param afl_id  请假记录id
	 * @return int  执行数据更新成功的数据数目
	 */
	public int updateAfl(int afl_id);
	/**
	 * @Description: 通过员工id删除请假记录
	 * @param e_id  员工id
	 * @return boolean  是否删除成功  成功true  失败 false
	 */
	public boolean deleteAflByEid(int e_id);
	/**
	 * @Description: 得到申请中还未同意的请假记录
	 * @param start  开始页码
	 * @param pageSize  每页显示记录数目
	 * @return List<AskForLeave>  申请请假列表
	 */
	public List<AskForLeave> getApplyAfl(int start, int pageSize);
	/**
	 * @Description: 获得当前申请请假的记录总数
	 * @return int
	 */
	public int getApplyAflCount();
	/**
	 * @Description: 根据请假信息id同意请假申请
	 * @param ask_id  请假信息id
	 * @return int  执行成功记录数目
	 */
	public int agreeAflApplyByAskId(int ask_id);
	/**
	 * 
	 * @Description: 根据搜索内容获取请假申请
	 * @param searchType  搜索类型
	 * @param searchContent  搜索内容
	 * @param start  开始页码
	 * @param pageSize  每页显示记录数目
	 * @return List<AskForLeave>  
	 */
	public List<AskForLeave> getAflApplyBySearch(String searchType, String searchContent, int start, int pageSize);
	/**
	 * @Description: 获取搜索到的请假申请记录总数
	 * @param searchType  搜索类型
	 * @param searchContent  搜索内容
	 * @return int  搜索到的记录数目
	 */
	public int getApplyAflCount(String searchType, String searchContent);
}
